package vaccine.appointment.system.vaccinationsite.service;

import vaccine.appointment.system.vaccinationsite.dataobject.VaccinationSite;
import vaccine.appointment.system.vaccinationsite.vo.AddVaccinationSiteRequest;
import vaccine.appointment.system.vaccinationsite.vo.UpdateVaccinationSiteRequest;
import vaccine.appointment.system.vaccinationsite.vo.VaccinationSiteVO;
import vaccine.appointment.system.vaccine.dataobject.Vaccine;

import java.util.List;

/**
 * 接种点服务接口
 */
public interface VaccinationSiteService {

    VaccinationSite selectVaccinationSiteById(Integer id);

    Boolean add(VaccinationSite vaccinationSite);

    Boolean delete(Integer id);

    Boolean update(VaccinationSite vaccinationSite);

    /**
     * 查询所有接种点
     * @return 接种点列表
     */
    List<VaccinationSiteVO> getAllSites();

    /**
     * 添加接种点（管理员功能）
     * @param request 添加接种点请求
     * @return 是否成功
     */
    Boolean addSite(AddVaccinationSiteRequest request);

    /**
     * 更新接种点（管理员功能）
     * @param siteId 接种点ID
     * @param request 更新接种点请求
     * @return 是否成功
     */
    Boolean updateSite(Integer siteId, UpdateVaccinationSiteRequest request);

    /**
     * 删除接种点（管理员功能）
     * @param siteId 接种点ID
     * @return 是否成功
     */
    Boolean deleteSite(Integer siteId);
}
